package com.atguigu.day26.day27morning.m2dbtuils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCUtils {
    static DataSource dataSource;
    static {
        //Properties 集合类 用于加载配置文件
        Properties properties = new Properties();
        //通过运行时类对象获取类的加载器  通过加载器将文件转为流
        InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");
        //将流中数据加载到Properties内
        try {
            properties.load(is);
            //todo 通过Properties读取到的配置信息构建连接池对象
            dataSource = DruidDataSourceFactory.createDataSource(properties);

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 获取连接池对象
     * @return
     */
    public static DataSource getDataSource(){
        return dataSource;
    }


    /**
     * 通过连接池对象获取连接
     * @return
     */
    public static Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
   /* public static Connection getConnection() {
        //创建连接池对象
        DruidDataSource ds = new DruidDataSource();
        //驱动名称
        ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
        //设置url
        ds.setUrl("jdbc:mysql:///atguigu");
        //设置用户名
        ds.setUsername("root");
        //设置密码
        ds.setPassword("root");
        //初始化连接数
        ds.setInitialSize(5);
        //设置最大连接数
        ds.setMaxActive(10);
        //设置最大等待时间
        ds.setMaxWait(5000);
        try {
            return ds.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }*/

}
